/**
 * 迭代和转换数组数据的方法
 */
// reduce
const files1 = [ 'foo.txt ', '.bar', '   ', 'baz.foo' ];
// 使用Array.prototype.reduce()空数组作为初始值。
const filePaths1 = files1.reduce((acc, file) => {
	const fileName = file.trim();
	if(fileName) {
		const filePath = `~/cool_app/${fileName}`;
		// 使用Array.prototype.push()或 展开 ( ...) 运算符来添加元素。
		acc.push(filePath);
	}
	return acc;
}, []);
console.log(filePaths1);
// filePaths = [ '~/cool_app/foo.txt', '~/cool_app/.bar', '~/cool_app/baz.foo']

// ES6 Array Methods
const files2 = [ 'foo.txt ', '.bar', '   ', 'baz.foo' ];
// 声明式，更易于阅读和重构，方法链根据需要可以动态新增或删减方法。
const filePaths2 = files2
.map(file => file.trim())
.filter(Boolean)
.map(fileName => `~/cool_app/${fileName}`);
console.log(filePaths2);
// filePaths = [ '~/cool_app/foo.txt', '~/cool_app/.bar', '~/cool_app/baz.foo']
